1. Field
The present disclosure is directed to a method and apparatus that collect and uploads implicit analytic data. More particularly, the present disclosure is directed to uploading implicit event data corresponding to an explicit event based on dependency rules.
2. Introduction
Communication devices used in today's society include mobile phones, smartphones, set-top boxes, personal digital assistants, portable computers, desktop computers, gaming devices, and various other electronic communication devices. Data analysis and user profiling involves the collection of extensive analytic data, such as system, application, and user activity events, across such communication devices and other services. Because of the quantity of data involved, continuous or real-time uploads of data analysis and other user profiling information incur overheads, such as increased device cost, increased processing requirements, reduced battery life, increased bandwidth requirements, and other overheads. These overheads adversely impact a device user's experience, such as by reducing the available processing power, particularly on mobile devices, such as mobile phones, personal digital assistants, and tablets. As a result, most solutions today focus on batched updates of analytic data to a server.
Analytic data falls into two categories. The first analytic data category includes implicit event data gathered without user awareness or intervention. The implicit event data can be gathered from application, network, or system events on devices that the user is engaging with.
The second analytic data category is explicit data gathered from user activities. The explicit data is generated based on user actions with an application or service and the explicit data generation is observable to that user. This results in the user expecting to see related reactions occurring in response the user's actions in real time. For example, if a user selects an option to “Like” a program, the user may expect to see an analytics counter for the “Likes” increase immediately. As another example, if a user “Rates” a program, the user may expect to see an immediate reflection on the average rating based on the user's input. As a further example, if a user “Checks in” to a program, the user expects to see a notification of a promised reward instantly. These real time reactions allow a user to associate the right context with the user's feedback responses. Otherwise, the user may not make the appropriate association between the action and the reaction. For example, if user checks-in to a system during a television program and is allocated a reward, but is not notified until the next day while the user is watching a different program, the user may incorrectly associate the reward with the latter program.
A further problem exists in that additional knowledge or awareness of relevant implicit events is required when processing an explicit event order to deliver a correct response. If the relevant implicit events are not known, the correct response will not occur. For example, a system may weight an activity associated with explicit events based on additional evidence or context provided by related implicit events. To elaborate on a particular example, a rating service may look at a user's “Like/Dislike” vote (an explicit event) to associate a rating from that user for corresponding content. If Alice and Bob both vote “Like” for the same movie, but Alice does so after watching only 5 minutes, while Bob does so after watching the whole movie, the rating service should know the movie watching duration information and adjust ratings accordingly. Such information on how long they watched the movie is captured by the implicit event data from a channel change event or media-player “start” and “stop” events. The system should then give Alice's vote a 4.0 rating as compared to Bob's 5.0 rating, or at least weight their ratings proportional to their duration of movie watching, based on the fact that Alice's opinion was only based on a segment of the content. Thus, a system may weight an activity to adjust explicit events based on implicit events.
A system may also cheat proof explicit events based on implicit events. For example, if a content provider establishes a limited reward of $100 gift certificates to the first 100 “check-ins” to a show, then it is vital to validate every check-in to ensure that the corresponding user actually did watch the related show. However, such cheat-proofing is not always required. For example, if the user simply posts a comment on a movie or show and there is no limited reward for posting a comment, then verification of the user's viewing context is less critical, is more acceptable, and does not require any implicit event data for correlation. Even so, cheat proofing is required in certain contexts when explicit activity is entered and uploaded.
Naïve systems can address such requirements by always uploading implicit events with the occurrence of every explicit event. However, such unconditional uploads drive up costs in storage, battery, and network usage without always providing the desired utility. In particular, present systems do not upload implicit analytic data based on explicit activity. Thus, there is a need for a system and method that uploads implicit analytic data based on explicit activity, which allows for more efficient upload of implicit event data based on the presence or absence of relevant explicit user activity, and which provides timely and correct responses to user actions where the implicit event data may be acquired from one or more devices contextually-related to the explicit event.